﻿using FlyingEye.SignalRHubs.Requests;
using FlyingEye.SignalRHubs.TaskResults;

namespace FlyingEye.SignalRHubs
{
    /// <summary>
    /// 设备客户端接口
    /// </summary>
    public interface IDeviceClient
    {
        /// <summary>
        /// 执行设备配置任务
        /// </summary>
        Task<DefaultResponse> ConfigAsync();

        /// <summary>
        /// 执行读取字符任务
        /// </summary>
        Task<ReadValueResponse> ReadStringValueAsync(ReadStringValueRequest task);

        /// <summary>
        /// 执行读取值类型数据任务
        /// </summary>
        Task<ReadValueResponse> ReadNumericValueAsync(ReadNumericValueRequest task);

        /// <summary>
        /// 执行设备写入任务
        /// </summary>
        Task<DefaultResponse> WriteValueAsync(WriteValueRequest task);
    }
}
